package com.stylefeng.guns.modular.system.model;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.stylefeng.guns.core.validater.Insert;
import com.stylefeng.guns.core.validater.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 系统岗位表
 * </p>
 *
 * @author stylefeng
 * @since 2018-09-04
 */
@Data
@EqualsAndHashCode(callSuper=true)
@TableName("sys_post")
@ApiModel(value = "系统岗位",description = "系统岗位")
public class Post extends Model<Post> {

    private static final long serialVersionUID = 1L;

    /**
     * 岗位编号
     */
    @TableId(value ="sp_id",type= IdType.AUTO)
    @ApiModelProperty(value="岗位编号",name="spId")
    @NotNull(message  ="岗位编号不能为空",groups = Update.class)
    private Integer spId;
    /**
     * 所属机构
     */
    @TableField("so_id")
    @NotNull(message  ="岗位编号不能为空")
    @ApiModelProperty(value="所属机构ID",name="soId")
    private Integer soId;
    /**
     * 岗位名称
     */
    @TableField("sp_name")
    @ApiModelProperty(value="岗位名称",name="spName")
    @NotNull(message  ="岗位名称不能为空",groups = {Insert.class,Update.class})
    private String spName;
    /**
     * 上级岗位
     */
    @TableField("sp_pid")
    @ApiModelProperty(name="spPid",value="上级岗位")
    private Integer spPid;
    /**
     * 岗位排序
     */
    @TableField("sp_sort")
    @ApiModelProperty(name="spSort",value="岗位排序")
    private Integer spSort;
    /**
     * 创建人
     */
    @TableField("create_user")
    @ApiModelProperty(name="createUser",value="创建人(系统维护)")
    private String createUser;
    /**
     * 创建时间
     */
    @TableField("create_time")
    @ApiModelProperty(name="createTime",value="创建时间(系统维护)")
    private Date createTime;
    /**
     * 修改人
     */
    @TableField("update_user")
    @ApiModelProperty(name="updateUser",value="修改人(系统维护)")
    private String updateUser;
    /**
     * 修改时间
     */
    @TableField("update_time")
    @ApiModelProperty(name="updateTime",value="修改时间(系统维护)")
    private Date updateTime;
    /**
     * 岗位对应的部门
     */
    @TableField("sp_org_id")
    @NotNull(message  ="岗位对应的部门不能为空")
    @ApiModelProperty(name="spOrgId",value="岗位对应的部门(必填)")
    private Integer spOrgId;

    @Override
    protected Serializable pkVal() {
        return this.spId;
    }


}
